package com.example.thread.pool;

/**
 * 缓存线程池
 * 创建一个可缓存线程池，如果线程池长度超过处理需要，可灵活回收空闲线程，若无可回收，则新建线程。
 * 线程池为无限大，当执行第二个任务时第一个任务已经完成，会复用执行第一个任务的线程，而不用每次新建线程。
 * 适用于执行有依赖关系的任务。
 */
public class CachedThreadPool {
    public static void main(String[] args) {
        java.util.concurrent.ExecutorService executorService = java.util.concurrent.Executors.newCachedThreadPool();
        for (int i = 0; i < 10; i++) {
            executorService.execute(() -> {
                System.out.println(Thread.currentThread().getName() + "正在处理任务");
            });
        }
    }
}
